// 1. 引用 express
const express = require('express');

// 2. 创建应用对象
const app = express();

const cors = require('cors')


// 因为做了这个处理, 导致你可以请求到数据
// 意义: 告诉浏览器, 不管是谁, 我都给他数据
app.use(cors())

// 3. 创建路由规则
// request    是对请求报文的封装
// response   是对响应报文的封装

app.get('/server', (request, response) => {
  // 设置响应头 设置允许跨域
  response.setHeader('Access-Control-Allow-Origin', '*')

  // 设置响应体
  response.send('HELLO AJAX1');
});



app.post('/server', (request, response) => {
  // 设置响应头 设置允许跨域
  response.setHeader('Access-Control-Allow-Origin', '*')

  // 设置响应体
  response.send('HELLO AJAX POST');
});



app.all('/server', (request, response) => {
  // 设置响应头 设置允许跨域
  response.setHeader('Access-Control-Allow-Origin', '*')

  // 响应头
  // 针对 自定义的请求头做出的配置
  response.setHeader('Access-Control-Allow-Headers', '*')

  // 设置响应体
  response.send('HELLO AJAX ALL');
});



app.all('/json-server', (request, response) => {
  // 设置响应头 设置允许跨域
  response.setHeader('Access-Control-Allow-Origin', '*')

  // 响应头
  response.setHeader('Access-Control-Allow-Headers', '*')

  // 响应一个数据
  const data = {
    name: 'atgugui'
  }

  // 对 对象进行字符串转化
  // 设置响应体
  // send 里面只能接收 字符串	或者	Buffer格式
  response.send(JSON.stringify(data));
});



// 针对 IE 缓存
app.get('/ie', (request, response) => {
  // 设置响应头 设置允许跨域
  response.setHeader('Access-Control-Allow-Origin', '*')

  // 设置响应体
  response.send('HELLO IE2');
});



// 延时响应
app.get('/delay', (request, response) => {
  // 设置响应头 设置允许跨域
  response.setHeader('Access-Control-Allow-Origin', '*')

  // 设置响应体
  setTimeout( () => {
    response.send('延时响应');
  }, 3000)

});


// 4. 监听端口启动服务
app.listen(8080, () => {
  console.log("server 服务已经启动, 8080 端口监听中...")
})